package com.example.user.service;

import com.example.common.core.domain.R;
import com.example.user.domain.course.dto.CourseQueryDTO;
import com.example.user.domain.course.vo.CourseDetailVO;
import com.example.user.domain.course.vo.CourseVO;
import com.example.user.domain.studentBuyCourse.dto.BuyCourseSaveDTO;

import java.util.List;

public interface ICourseService {
    List<CourseVO> list(CourseQueryDTO courseQueryDTO);

    CourseDetailVO detail(Long courseId);

    List<CourseVO> courseListForSale(CourseQueryDTO courseQueryDTO);

    int buyCourse(BuyCourseSaveDTO buyCourseSaveDTO);

    List<CourseVO> purchasedCourseList(CourseQueryDTO courseQueryDTO);

    Boolean haveYouPurchased(Long courseId);

    List<CourseVO> classroomCourseList(CourseQueryDTO courseQueryDTO);
    
    /**
     * 提交课程审核
     * @param courseId 课程ID
     * @return 操作结果
     */
    R<String> submitForReview(Long courseId);
}
